home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 October: Mac OS SDK / Dev.CD Oct 00 SDK1.toast / Development Kits / Cross Platform / QuickTime 4.1.2 Windows SDK / CIncludes / AEObjects.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-04-12  |  18.2 KB  |  407 lines  |  [TEXT/R*ch]

  1. /*
  2.      File:        AEObjects.h
  3.  
  4.      Contains:    Object Support Library Interfaces.
  5.  
  6.      Version:    Technology:    System 8.5
  7.                  Release:    QuickTime 4.1
  8.  
  9.      Copyright:    (c) 1991-1999 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __AEOBJECTS__
  18. #define __AEOBJECTS__
  19.  
  20. #ifndef __OSUTILS__
  21.     #include <OSUtils.h>
  22. #endif
  23.  
  24. #ifndef __APPLEEVENTS__
  25.     #include <AppleEvents.h>
  26. #endif
  27.  
  28. #ifndef __MACERRORS__
  29.     #include <MacErrors.h>
  30. #endif
  31.  
  32. #ifndef __EVENTS__
  33.     #include <Events.h>
  34. #endif
  35.  
  36.  
  37.  
  38.  
  39. #if PRAGMA_ONCE
  40. #pragma once
  41. #endif
  42.  
  43. #ifdef __cplusplus
  44. extern "C" {
  45. #endif
  46.  
  47. #if PRAGMA_IMPORT
  48. #pragma import on
  49. #endif
  50.  
  51. #if PRAGMA_STRUCT_ALIGN
  52.     #pragma options align=mac68k
  53. #elif PRAGMA_STRUCT_PACKPUSH
  54.     #pragma pack(push, 2)
  55. #elif PRAGMA_STRUCT_PACK
  56.     #pragma pack(2)
  57. #endif
  58.  
  59. enum {
  60.                                                                 /****    LOGICAL OPERATOR CONSTANTS    ****/
  61.     kAEAND                        = FOUR_CHAR_CODE('AND '),        /*  0x414e4420  */
  62.     kAEOR                        = FOUR_CHAR_CODE('OR  '),        /*  0x4f522020  */
  63.     kAENOT                        = FOUR_CHAR_CODE('NOT '),        /*  0x4e4f5420  */
  64.                                                                 /****    ABSOLUTE ORDINAL CONSTANTS    ****/
  65.     kAEFirst                    = FOUR_CHAR_CODE('firs'),        /*  0x66697273  */
  66.     kAELast                        = FOUR_CHAR_CODE('last'),        /*  0x6c617374  */
  67.     kAEMiddle                    = FOUR_CHAR_CODE('midd'),        /*  0x6d696464  */
  68.     kAEAny                        = FOUR_CHAR_CODE('any '),        /*  0x616e7920  */
  69.     kAEAll                        = FOUR_CHAR_CODE('all '),        /*  0x616c6c20  */
  70.                                                                 /****    RELATIVE ORDINAL CONSTANTS    ****/
  71.     kAENext                        = FOUR_CHAR_CODE('next'),        /*  0x6e657874  */
  72.     kAEPrevious                    = FOUR_CHAR_CODE('prev'),        /*  0x70726576  */
  73.                                                                 /****    KEYWORD CONSTANT     ****/
  74.     keyAECompOperator            = FOUR_CHAR_CODE('relo'),        /*  0x72656c6f  */
  75.     keyAELogicalTerms            = FOUR_CHAR_CODE('term'),        /*  0x7465726d  */
  76.     keyAELogicalOperator        = FOUR_CHAR_CODE('logc'),        /*  0x6c6f6763  */
  77.     keyAEObject1                = FOUR_CHAR_CODE('obj1'),        /*  0x6f626a31  */
  78.     keyAEObject2                = FOUR_CHAR_CODE('obj2'),        /*  0x6f626a32  */
  79.                                                                 /*    ... for Keywords for getting fields out of object specifier records. */
  80.     keyAEDesiredClass            = FOUR_CHAR_CODE('want'),        /*  0x77616e74  */
  81.     keyAEContainer                = FOUR_CHAR_CODE('from'),        /*  0x66726f6d  */
  82.     keyAEKeyForm                = FOUR_CHAR_CODE('form'),        /*  0x666f726d  */
  83.     keyAEKeyData                = FOUR_CHAR_CODE('seld')        /*  0x73656c64  */
  84. };
  85.  
  86. enum {
  87.                                                                 /*    ... for Keywords for getting fields out of Range specifier records. */
  88.     keyAERangeStart                = FOUR_CHAR_CODE('star'),        /*  0x73746172  */
  89.     keyAERangeStop                = FOUR_CHAR_CODE('stop'),        /*  0x73746f70  */
  90.                                                                 /*    ... special handler selectors for OSL Callbacks. */
  91.     keyDisposeTokenProc            = FOUR_CHAR_CODE('xtok'),        /*  0x78746f6b  */
  92.     keyAECompareProc            = FOUR_CHAR_CODE('cmpr'),        /*  0x636d7072  */
  93.     keyAECountProc                = FOUR_CHAR_CODE('cont'),        /*  0x636f6e74  */
  94.     keyAEMarkTokenProc            = FOUR_CHAR_CODE('mkid'),        /*  0x6d6b6964  */
  95.     keyAEMarkProc                = FOUR_CHAR_CODE('mark'),        /*  0x6d61726b  */
  96.     keyAEAdjustMarksProc        = FOUR_CHAR_CODE('adjm'),        /*  0x61646a6d  */
  97.     keyAEGetErrDescProc            = FOUR_CHAR_CODE('indc')        /*  0x696e6463  */
  98. };
  99.  
  100. /****    VALUE and TYPE CONSTANTS    ****/
  101. enum {
  102.                                                                 /*    ... possible values for the keyAEKeyForm field of an object specifier. */
  103.     formAbsolutePosition        = FOUR_CHAR_CODE('indx'),        /*  0x696e6478  */
  104.     formRelativePosition        = FOUR_CHAR_CODE('rele'),        /*  0x72656c65  */
  105.     formTest                    = FOUR_CHAR_CODE('test'),        /*  0x74657374  */
  106.     formRange                    = FOUR_CHAR_CODE('rang'),        /*  0x72616e67  */
  107.     formPropertyID                = FOUR_CHAR_CODE('prop'),        /*  0x70726f70  */
  108.     formName                    = FOUR_CHAR_CODE('name'),        /*  0x6e616d65  */
  109.                                                                 /*    ... relevant types (some of these are often pared with forms above). */
  110.     typeObjectSpecifier            = FOUR_CHAR_CODE('obj '),        /*  0x6f626a20  */
  111.     typeObjectBeingExamined        = FOUR_CHAR_CODE('exmn'),        /*  0x65786d6e  */
  112.     typeCurrentContainer        = FOUR_CHAR_CODE('ccnt'),        /*  0x63636e74  */
  113.     typeToken                    = FOUR_CHAR_CODE('toke'),        /*  0x746f6b65  */
  114.     typeRelativeDescriptor        = FOUR_CHAR_CODE('rel '),        /*  0x72656c20  */
  115.     typeAbsoluteOrdinal            = FOUR_CHAR_CODE('abso'),        /*  0x6162736f  */
  116.     typeIndexDescriptor            = FOUR_CHAR_CODE('inde'),        /*  0x696e6465  */
  117.     typeRangeDescriptor            = FOUR_CHAR_CODE('rang'),        /*  0x72616e67  */
  118.     typeLogicalDescriptor        = FOUR_CHAR_CODE('logi'),        /*  0x6c6f6769  */
  119.     typeCompDescriptor            = FOUR_CHAR_CODE('cmpd'),        /*  0x636d7064  */
  120.     typeOSLTokenList            = FOUR_CHAR_CODE('ostl')        /*  0x6F73746C  */
  121. };
  122.  
  123. /* Possible values for flags parameter to AEResolve.  They're additive */
  124. enum {
  125.     kAEIDoMinimum                = 0x0000,
  126.     kAEIDoWhose                    = 0x0001,
  127.     kAEIDoMarking                = 0x0004,
  128.     kAEPassSubDescs                = 0x0008,
  129.     kAEResolveNestedLists        = 0x0010,
  130.     kAEHandleSimpleRanges        = 0x0020,
  131.     kAEUseRelativeIterators        = 0x0040
  132. };
  133.  
  134. /**** SPECIAL CONSTANTS FOR CUSTOM WHOSE-CLAUSE RESOLUTION */
  135. enum {
  136.     typeWhoseDescriptor            = FOUR_CHAR_CODE('whos'),        /*  0x77686f73  */
  137.     formWhose                    = FOUR_CHAR_CODE('whos'),        /*  0x77686f73  */
  138.     typeWhoseRange                = FOUR_CHAR_CODE('wrng'),        /*  0x77726e67  */
  139.     keyAEWhoseRangeStart        = FOUR_CHAR_CODE('wstr'),        /*  0x77737472  */
  140.     keyAEWhoseRangeStop            = FOUR_CHAR_CODE('wstp'),        /*  0x77737470  */
  141.     keyAEIndex                    = FOUR_CHAR_CODE('kidx'),        /*  0x6b696478  */
  142.     keyAETest                    = FOUR_CHAR_CODE('ktst')        /*  0x6b747374  */
  143. };
  144.  
  145. /*
  146.     used for rewriting tokens in place of 'ccnt' descriptors
  147.     This record is only of interest to those who, when they...
  148.     ...get ranges as key data in their accessor procs, choose
  149.     ...to resolve them manually rather than call AEResolve again.
  150. */
  151.  
  152. struct ccntTokenRecord {
  153.     DescType                         tokenClass;
  154.     AEDesc                             token;
  155. };
  156. typedef struct ccntTokenRecord            ccntTokenRecord;
  157.  
  158. typedef ccntTokenRecord *                ccntTokenRecPtr;
  159. typedef ccntTokenRecPtr *                ccntTokenRecHandle;
  160. #if OLDROUTINENAMES
  161. typedef AEDesc *                        DescPtr;
  162. typedef DescPtr *                        DescHandle;
  163. #endif  /* OLDROUTINENAMES */
  164.  
  165. /* typedefs providing type checking for procedure pointers */
  166. typedef CALLBACK_API( OSErr , OSLAccessorProcPtr )(DescType desiredClass, const AEDesc *container, DescType containerClass, DescType form, const AEDesc *selectionData, AEDesc *value, long accessorRefcon);
  167. typedef CALLBACK_API( OSErr , OSLCompareProcPtr )(DescType oper, const AEDesc *obj1, const AEDesc *obj2, Boolean *result);
  168. typedef CALLBACK_API( OSErr , OSLCountProcPtr )(DescType desiredType, DescType containerClass, const AEDesc *container, long *result);
  169. typedef CALLBACK_API( OSErr , OSLDisposeTokenProcPtr )(AEDesc *unneededToken);
  170. typedef CALLBACK_API( OSErr , OSLGetMarkTokenProcPtr )(const AEDesc *dContainerToken, DescType containerClass, AEDesc *result);
  171. typedef CALLBACK_API( OSErr , OSLGetErrDescProcPtr )(AEDesc **appDescPtr);
  172. typedef CALLBACK_API( OSErr , OSLMarkProcPtr )(const AEDesc *dToken, const AEDesc *markToken, long index);
  173. typedef CALLBACK_API( OSErr , OSLAdjustMarksProcPtr )(long newStart, long newStop, const AEDesc *markToken);
  174. typedef STACK_UPP_TYPE(OSLAccessorProcPtr)                         OSLAccessorUPP;
  175. typedef STACK_UPP_TYPE(OSLCompareProcPtr)                         OSLCompareUPP;
  176. typedef STACK_UPP_TYPE(OSLCountProcPtr)                         OSLCountUPP;
  177. typedef STACK_UPP_TYPE(OSLDisposeTokenProcPtr)                     OSLDisposeTokenUPP;
  178. typedef STACK_UPP_TYPE(OSLGetMarkTokenProcPtr)                     OSLGetMarkTokenUPP;
  179. typedef STACK_UPP_TYPE(OSLGetErrDescProcPtr)                     OSLGetErrDescUPP;
  180. typedef STACK_UPP_TYPE(OSLMarkProcPtr)                             OSLMarkUPP;
  181. typedef STACK_UPP_TYPE(OSLAdjustMarksProcPtr)                     OSLAdjustMarksUPP;
  182. #if OPAQUE_UPP_TYPES
  183.     EXTERN_API(OSLAccessorUPP)
  184.     NewOSLAccessorUPP               (OSLAccessorProcPtr        userRoutine);
  185.  
  186.     EXTERN_API(OSLCompareUPP)
  187.     NewOSLCompareUPP               (OSLCompareProcPtr        userRoutine);
  188.  
  189.     EXTERN_API(OSLCountUPP)
  190.     NewOSLCountUPP                   (OSLCountProcPtr            userRoutine);
  191.  
  192.     EXTERN_API(OSLDisposeTokenUPP)
  193.     NewOSLDisposeTokenUPP           (OSLDisposeTokenProcPtr    userRoutine);
  194.  
  195.     EXTERN_API(OSLGetMarkTokenUPP)
  196.     NewOSLGetMarkTokenUPP           (OSLGetMarkTokenProcPtr    userRoutine);
  197.  
  198.     EXTERN_API(OSLGetErrDescUPP)
  199.     NewOSLGetErrDescUPP               (OSLGetErrDescProcPtr    userRoutine);
  200.  
  201.     EXTERN_API(OSLMarkUPP)
  202.     NewOSLMarkUPP                   (OSLMarkProcPtr            userRoutine);
  203.  
  204.     EXTERN_API(OSLAdjustMarksUPP)
  205.     NewOSLAdjustMarksUPP           (OSLAdjustMarksProcPtr    userRoutine);
  206.  
  207.     EXTERN_API(void)
  208.     DisposeOSLAccessorUPP           (OSLAccessorUPP            userUPP);
  209.  
  210.     EXTERN_API(void)
  211.     DisposeOSLCompareUPP           (OSLCompareUPP            userUPP);
  212.  
  213.     EXTERN_API(void)
  214.     DisposeOSLCountUPP               (OSLCountUPP                userUPP);
  215.  
  216.     EXTERN_API(void)
  217.     DisposeOSLDisposeTokenUPP       (OSLDisposeTokenUPP        userUPP);
  218.  
  219.     EXTERN_API(void)
  220.     DisposeOSLGetMarkTokenUPP       (OSLGetMarkTokenUPP        userUPP);
  221.  
  222.     EXTERN_API(void)
  223.     DisposeOSLGetErrDescUPP           (OSLGetErrDescUPP        userUPP);
  224.  
  225.     EXTERN_API(void)
  226.     DisposeOSLMarkUPP               (OSLMarkUPP                userUPP);
  227.  
  228.     EXTERN_API(void)
  229.     DisposeOSLAdjustMarksUPP       (OSLAdjustMarksUPP        userUPP);
  230.  
  231.     EXTERN_API(OSErr)
  232.     InvokeOSLAccessorUPP           (DescType                desiredClass,
  233.                                     const AEDesc *            container,
  234.                                     DescType                containerClass,
  235.                                     DescType                form,
  236.                                     const AEDesc *            selectionData,
  237.                                     AEDesc *                value,
  238.                                     long                    accessorRefcon,
  239.                                     OSLAccessorUPP            userUPP);
  240.  
  241.     EXTERN_API(OSErr)
  242.     InvokeOSLCompareUPP               (DescType                oper,
  243.                                     const AEDesc *            obj1,
  244.                                     const AEDesc *            obj2,
  245.                                     Boolean *                result,
  246.                                     OSLCompareUPP            userUPP);
  247.  
  248.     EXTERN_API(OSErr)
  249.     InvokeOSLCountUPP               (DescType                desiredType,
  250.                                     DescType                containerClass,
  251.                                     const AEDesc *            container,
  252.                                     long *                    result,
  253.                                     OSLCountUPP                userUPP);
  254.  
  255.     EXTERN_API(OSErr)
  256.     InvokeOSLDisposeTokenUPP       (AEDesc *                unneededToken,
  257.                                     OSLDisposeTokenUPP        userUPP);
  258.  
  259.     EXTERN_API(OSErr)
  260.     InvokeOSLGetMarkTokenUPP       (const AEDesc *            dContainerToken,
  261.                                     DescType                containerClass,
  262.                                     AEDesc *                result,
  263.                                     OSLGetMarkTokenUPP        userUPP);
  264.  
  265.     EXTERN_API(OSErr)
  266.     InvokeOSLGetErrDescUPP           (AEDesc **                appDescPtr,
  267.                                     OSLGetErrDescUPP        userUPP);
  268.  
  269.     EXTERN_API(OSErr)
  270.     InvokeOSLMarkUPP               (const AEDesc *            dToken,
  271.                                     const AEDesc *            markToken,
  272.                                     long                    index,
  273.                                     OSLMarkUPP                userUPP);
  274.  
  275.     EXTERN_API(OSErr)
  276.     InvokeOSLAdjustMarksUPP           (long                    newStart,
  277.                                     long                    newStop,
  278.                                     const AEDesc *            markToken,
  279.                                     OSLAdjustMarksUPP        userUPP);
  280.  
  281. #else
  282.     enum { uppOSLAccessorProcInfo = 0x000FFFE0 };                     /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  283.     enum { uppOSLCompareProcInfo = 0x00003FE0 };                     /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  284.     enum { uppOSLCountProcInfo = 0x00003FE0 };                         /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  285.     enum { uppOSLDisposeTokenProcInfo = 0x000000E0 };                 /* pascal 2_bytes Func(4_bytes) */
  286.     enum { uppOSLGetMarkTokenProcInfo = 0x00000FE0 };                 /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
  287.     enum { uppOSLGetErrDescProcInfo = 0x000000E0 };                 /* pascal 2_bytes Func(4_bytes) */
  288.     enum { uppOSLMarkProcInfo = 0x00000FE0 };                         /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
  289.     enum { uppOSLAdjustMarksProcInfo = 0x00000FE0 };                 /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
  290.     #define NewOSLAccessorUPP(userRoutine)                             (OSLAccessorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLAccessorProcInfo, GetCurrentArchitecture())
  291.     #define NewOSLCompareUPP(userRoutine)                             (OSLCompareUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLCompareProcInfo, GetCurrentArchitecture())
  292.     #define NewOSLCountUPP(userRoutine)                             (OSLCountUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLCountProcInfo, GetCurrentArchitecture())
  293.     #define NewOSLDisposeTokenUPP(userRoutine)                         (OSLDisposeTokenUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLDisposeTokenProcInfo, GetCurrentArchitecture())
  294.     #define NewOSLGetMarkTokenUPP(userRoutine)                         (OSLGetMarkTokenUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLGetMarkTokenProcInfo, GetCurrentArchitecture())
  295.     #define NewOSLGetErrDescUPP(userRoutine)                         (OSLGetErrDescUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLGetErrDescProcInfo, GetCurrentArchitecture())
  296.     #define NewOSLMarkUPP(userRoutine)                                 (OSLMarkUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLMarkProcInfo, GetCurrentArchitecture())
  297.     #define NewOSLAdjustMarksUPP(userRoutine)                         (OSLAdjustMarksUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLAdjustMarksProcInfo, GetCurrentArchitecture())
  298.     #define DisposeOSLAccessorUPP(userUPP)                             DisposeRoutineDescriptor(userUPP)
  299.     #define DisposeOSLCompareUPP(userUPP)                             DisposeRoutineDescriptor(userUPP)
  300.     #define DisposeOSLCountUPP(userUPP)                             DisposeRoutineDescriptor(userUPP)
  301.     #define DisposeOSLDisposeTokenUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  302.     #define DisposeOSLGetMarkTokenUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  303.     #define DisposeOSLGetErrDescUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  304.     #define DisposeOSLMarkUPP(userUPP)                                 DisposeRoutineDescriptor(userUPP)
  305.     #define DisposeOSLAdjustMarksUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  306.     #define InvokeOSLAccessorUPP(desiredClass, container, containerClass, form, selectionData, value, accessorRefcon, userUPP)  (OSErr)CALL_SEVEN_PARAMETER_UPP((userUPP), uppOSLAccessorProcInfo, (desiredClass), (container), (containerClass), (form), (selectionData), (value), (accessorRefcon))
  307.     #define InvokeOSLCompareUPP(oper, obj1, obj2, result, userUPP)     (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppOSLCompareProcInfo, (oper), (obj1), (obj2), (result))
  308.     #define InvokeOSLCountUPP(desiredType, containerClass, container, result, userUPP)  (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppOSLCountProcInfo, (desiredType), (containerClass), (container), (result))
  309.     #define InvokeOSLDisposeTokenUPP(unneededToken, userUPP)         (OSErr)CALL_ONE_PARAMETER_UPP((userUPP), uppOSLDisposeTokenProcInfo, (unneededToken))
  310.     #define InvokeOSLGetMarkTokenUPP(dContainerToken, containerClass, result, userUPP)  (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppOSLGetMarkTokenProcInfo, (dContainerToken), (containerClass), (result))
  311.     #define InvokeOSLGetErrDescUPP(appDescPtr, userUPP)             (OSErr)CALL_ONE_PARAMETER_UPP((userUPP), uppOSLGetErrDescProcInfo, (appDescPtr))
  312.     #define InvokeOSLMarkUPP(dToken, markToken, index, userUPP)     (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppOSLMarkProcInfo, (dToken), (markToken), (index))
  313.     #define InvokeOSLAdjustMarksUPP(newStart, newStop, markToken, userUPP)  (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppOSLAdjustMarksProcInfo, (newStart), (newStop), (markToken))
  314. #endif
  315. /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  316. #define NewOSLAccessorProc(userRoutine)                         NewOSLAccessorUPP(userRoutine)
  317. #define NewOSLCompareProc(userRoutine)                             NewOSLCompareUPP(userRoutine)
  318. #define NewOSLCountProc(userRoutine)                             NewOSLCountUPP(userRoutine)
  319. #define NewOSLDisposeTokenProc(userRoutine)                     NewOSLDisposeTokenUPP(userRoutine)
  320. #define NewOSLGetMarkTokenProc(userRoutine)                     NewOSLGetMarkTokenUPP(userRoutine)
  321. #define NewOSLGetErrDescProc(userRoutine)                         NewOSLGetErrDescUPP(userRoutine)
  322. #define NewOSLMarkProc(userRoutine)                             NewOSLMarkUPP(userRoutine)
  323. #define NewOSLAdjustMarksProc(userRoutine)                         NewOSLAdjustMarksUPP(userRoutine)
  324. #define CallOSLAccessorProc(userRoutine, desiredClass, container, containerClass, form, selectionData, value, accessorRefcon) InvokeOSLAccessorUPP(desiredClass, container, containerClass, form, selectionData, value, accessorRefcon, userRoutine)
  325. #define CallOSLCompareProc(userRoutine, oper, obj1, obj2, result) InvokeOSLCompareUPP(oper, obj1, obj2, result, userRoutine)
  326. #define CallOSLCountProc(userRoutine, desiredType, containerClass, container, result) InvokeOSLCountUPP(desiredType, containerClass, container, result, userRoutine)
  327. #define CallOSLDisposeTokenProc(userRoutine, unneededToken)        InvokeOSLDisposeTokenUPP(unneededToken, userRoutine)
  328. #define CallOSLGetMarkTokenProc(userRoutine, dContainerToken, containerClass, result) InvokeOSLGetMarkTokenUPP(dContainerToken, containerClass, result, userRoutine)
  329. #define CallOSLGetErrDescProc(userRoutine, appDescPtr)            InvokeOSLGetErrDescUPP(appDescPtr, userRoutine)
  330. #define CallOSLMarkProc(userRoutine, dToken, markToken, index)    InvokeOSLMarkUPP(dToken, markToken, index, userRoutine)
  331. #define CallOSLAdjustMarksProc(userRoutine, newStart, newStop, markToken) InvokeOSLAdjustMarksUPP(newStart, newStop, markToken, userRoutine)
  332.  
  333.  
  334.  
  335. EXTERN_API( OSErr )
  336. AEObjectInit                    (void);
  337.  
  338. /* Not done by inline, but by direct linking into code.  It sets up the pack
  339.   such that further calls can be via inline */
  340. EXTERN_API( OSErr )
  341. AESetObjectCallbacks            (OSLCompareUPP             myCompareProc,
  342.                                  OSLCountUPP             myCountProc,
  343.                                  OSLDisposeTokenUPP     myDisposeTokenProc,
  344.                                  OSLGetMarkTokenUPP     myGetMarkTokenProc,
  345.                                  OSLMarkUPP             myMarkProc,
  346.                                  OSLAdjustMarksUPP         myAdjustMarksProc,
  347.                                  OSLGetErrDescUPP         myGetErrDescProcPtr)                THREEWORDINLINE(0x303C, 0x0E35, 0xA816);
  348.  
  349. EXTERN_API( OSErr )
  350. AEResolve                        (const AEDesc *            objectSpecifier,
  351.                                  short                     callbackFlags,
  352.                                  AEDesc *                theToken)                            THREEWORDINLINE(0x303C, 0x0536, 0xA816);
  353.  
  354. EXTERN_API( OSErr )
  355. AEInstallObjectAccessor            (DescType                 desiredClass,
  356.                                  DescType                 containerType,
  357.                                  OSLAccessorUPP         theAccessor,
  358.                                  long                     accessorRefcon,
  359.                                  Boolean                 isSysHandler)                        THREEWORDINLINE(0x303C, 0x0937, 0xA816);
  360.  
  361. EXTERN_API( OSErr )
  362. AERemoveObjectAccessor            (DescType                 desiredClass,
  363.                                  DescType                 containerType,
  364.                                  OSLAccessorUPP         theAccessor,
  365.                                  Boolean                 isSysHandler)                        THREEWORDINLINE(0x303C, 0x0738, 0xA816);
  366.  
  367. EXTERN_API( OSErr )
  368. AEGetObjectAccessor                (DescType                 desiredClass,
  369.                                  DescType                 containerType,
  370.                                  OSLAccessorUPP *        accessor,
  371.                                  long *                    accessorRefcon,
  372.                                  Boolean                 isSysHandler)                        THREEWORDINLINE(0x303C, 0x0939, 0xA816);
  373.  
  374. EXTERN_API( OSErr )
  375. AEDisposeToken                    (AEDesc *                theToken)                            THREEWORDINLINE(0x303C, 0x023A, 0xA816);
  376.  
  377. EXTERN_API( OSErr )
  378. AECallObjectAccessor            (DescType                 desiredClass,
  379.                                  const AEDesc *            containerToken,
  380.                                  DescType                 containerClass,
  381.                                  DescType                 keyForm,
  382.                                  const AEDesc *            keyData,
  383.                                  AEDesc *                token)                                THREEWORDINLINE(0x303C, 0x0C3B, 0xA816);
  384.  
  385.  
  386.  
  387. #if PRAGMA_STRUCT_ALIGN
  388.     #pragma options align=reset
  389. #elif PRAGMA_STRUCT_PACKPUSH
  390.     #pragma pack(pop)
  391. #elif PRAGMA_STRUCT_PACK
  392.     #pragma pack()
  393. #endif
  394.  
  395. #ifdef PRAGMA_IMPORT_OFF
  396. #pragma import off
  397. #elif PRAGMA_IMPORT
  398. #pragma import reset
  399. #endif
  400.  
  401. #ifdef __cplusplus
  402. }
  403. #endif
  404.  
  405. #endif /* __AEOBJECTS__ */
  406.  
  407.